#include <stdio.h>
#include <assert.h>

// 此功能是对memcpy的模拟实现
// 不同于str类别的函数,该函数不限制数据类型,直接复制

void* mymencpy (void* dest , const void* src , size_t num) 
{

    assert (dest && src) ;

    void* ret = dest ;

    while (num--) // 由于不确定数据类型,所以复制需要使用char来实现
    {

        *(char*) dest = *(char*) src ;

        src = (char*) src + 1 ;

        dest = (char*) dest + 1 ;

    }

    return ret ;

}

int main ()
{

    int arr1 [] = { 1 , 2 , 3 , 4 , 5 } ;

    int arr2 [10] = { 0 } ;

    mymencpy (arr2 , arr1 , 20) ;

    for (int i = 0 ; i < 10 ; i++)
    {

        printf ("%d " , arr2 [i]) ;

    }

    return 0 ;

}